import sys
from pathlib import Path

# Add the project root to the Python path
sys.path.append(str(Path(__file__).resolve().parent))

from database.db_connection import execute_query

def create_policy_table():
    try:
        # 创建制度表
        create_table_query = '''
        CREATE TABLE IF NOT EXISTS policies (
            id INT AUTO_INCREMENT PRIMARY KEY,
            title VARCHAR(200) NOT NULL,
            content TEXT NOT NULL,
            category VARCHAR(100) NOT NULL,
            effective_date DATE NOT NULL,
            created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
            updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
        )
        '''
        execute_query(create_table_query, fetch=False)
        print("制度表创建成功")
        
        # 检查表是否已有数据
        count_query = "SELECT COUNT(*) as count FROM policies"
        result = execute_query(count_query)
        count = result[0]['count']
        
        if count == 0:
            # 添加示例数据
            sample_policies = [
                (
                    "考勤管理制度", 
                    """# 考勤管理制度

## 一、上下班时间
1. 正常工作时间为周一至周五，上午9:00-12:00，下午13:30-18:00。
2. 特殊岗位工作时间按照部门规定执行。

## 二、打卡规定
1. 员工必须通过人脸识别系统进行上下班打卡。
2. 上班打卡时间不得晚于9:15，下班打卡时间不得早于17:45。
3. 迟到或早退超过三次/月，将影响绩效考核。

## 三、请假规定
1. 请假须提前申请，并获得直接主管批准。
2. 病假须提供医院证明。
3. 年假按国家规定及公司相关制度执行。

## 四、加班管理
1. 加班须经部门主管批准。
2. 加班时间可用于调休或按规定计算加班费。

## 五、旷工处理
1. 未经批准擅自缺勤视为旷工。
2. 旷工将按照公司规定进行处理。""", 
                    "考勤管理", 
                    "2023-01-01"
                ),
                (
                    "休假制度", 
                    """# 休假制度

## 一、年假规定
1. 工作满1年不满10年的，年休假5天。
2. 工作满10年不满20年的，年休假10天。
3. 工作满20年以上的，年休假15天。

## 二、病假规定
1. 病假期间工资按照公司规定支付。
2. 病假须提供医院证明。

## 三、婚假规定
1. 员工结婚可享受3天婚假。
2. 晚婚（男25周岁，女23周岁以上）可增加3天婚假。

## 四、产假规定
1. 女职工产假按照国家及地方规定执行。
2. 男职工可享受陪产假。

## 五、丧假规定
1. 直系亲属去世，可享受3天丧假。""", 
                    "休假管理", 
                    "2023-01-01"
                ),
                (
                    "绩效考核制度", 
                    """# 绩效考核制度

## 一、考核周期
1. 考核分为月度考核、季度考核和年度考核。

## 二、考核内容
1. 工作业绩（50%）
2. 工作态度（20%）
3. 团队协作（15%）
4. 创新能力（15%）

## 三、考核等级
1. A级：优秀（90分以上）
2. B级：良好（80-89分）
3. C级：合格（70-79分）
4. D级：不合格（70分以下）

## 四、考核结果应用
1. 考核结果将作为薪酬调整、奖金分配、职位晋升的重要依据。
2. 连续两次考核不合格的员工，公司有权调整其工作岗位或解除劳动合同。""", 
                    "绩效管理", 
                    "2023-01-01"
                ),
                (
                    "奖惩制度", 
                    """# 奖惩制度

## 一、奖励类别
1. 月度优秀员工
2. 季度优秀员工
3. 年度优秀员工
4. 特殊贡献奖

## 二、奖励方式
1. 精神奖励：颁发荣誉证书、通报表扬等
2. 物质奖励：发放奖金、奖品等
3. 晋升奖励：优先考虑职位晋升

## 三、处罚类别
1. 警告
2. 记过
3. 降级
4. 解除劳动合同

## 四、处罚程序
1. 调查取证
2. 当事人陈述和申辩
3. 处罚决定
4. 处罚执行""", 
                    "奖惩管理", 
                    "2023-01-01"
                ),
                (
                    "办公室管理制度", 
                    """# 办公室管理制度

## 一、办公环境
1. 保持办公区域整洁有序。
2. 禁止在办公区域吸烟。
3. 节约用电、用水，下班时关闭电源。

## 二、办公设备
1. 妥善保管和使用办公设备。
2. 设备故障及时报修。
3. 禁止将公司设备用于个人用途。

## 三、会议管理
1. 会议须提前预约会议室。
2. 按时参加会议，不迟到、不早退。
3. 会议结束后整理会议室。

## 四、保密规定
1. 严格保守公司商业秘密。
2. 未经授权不得对外泄露公司信息。
3. 违反保密规定将受到严肃处理。""", 
                    "行政管理", 
                    "2023-01-01"
                )
            ]
            
            insert_query = """
            INSERT INTO policies (title, content, category, effective_date)
            VALUES (%s, %s, %s, %s)
            """
            
            for policy in sample_policies:
                execute_query(insert_query, policy, fetch=False)
            
            print(f"已添加{len(sample_policies)}条示例制度数据")
        else:
            print(f"制度表中已有{count}条数据，跳过添加示例数据")
            
    except Exception as e:
        print(f"创建制度表时出错: {e}")

if __name__ == "__main__":
    create_policy_table() 